Я обнаружил, что трудно просто передать объектную функцию в Bluebird then
. Я предполагаю, что Bluebird then
выполняет некоторую магию и завершает переданную функцию в анонимной функции. Поэтому я привязал функцию .bind
к функции, и она сработала. Это правильный способ сделать это с помощью bluebird? Или есть лучший способ?
var Promise = require("bluebird")
var Chair = function(){
this.color = "red"
return this
}
Chair.prototype.build = function(wood){
return this.color + " " + wood
}
var chair = new Chair()
//var x = chair.build("cherry")
Promise.resolve("cherry")
.then(chair.build.bind(chair)) // color is undefined without bind
.then(console.log)
Я знаю, что это не асинхронно, поэтому, пожалуйста, приготовьтесь к примеру синхронизации, мое использование будет асинхронным.