【发布时间】:2018-08-15 15:42:58
【问题描述】:
我现在有
getUserInfo = (data) => {
console.log('Getting user info')
return new Promise((resolve, reject) => {
if (data === 1)
return resolve('Hello World')
resolve(getUserInfo(1))
})
}
getUserInfo().then(data => console.log(data))
这将 console.log
Getting user info
Getting user info
Hello World
这正是我想要的,多次调用一个承诺然后解决。
但是我想在承诺之间添加一个延迟,所以我想要:
Getting user Info
Wait 1 second
Getting user Info
Hello World
我想使用 bluebird 的 Promise.delay。关于如何去的任何提示?
我试过了
getUserInfo = (data) => {
console.log('Getting user info')
return new Promise.delay(500,(resolve, reject) => {
if (data === 1)
return resolve('Hello World')
resolve(getUserInfo(1))
})
}
但作为 promise 的解析数据,这将返回函数:
Getting user info
[Function]
提前谢谢你!
【问题讨论】:
-
注意不能“调用”promise,只能调用函数。
-
避免使用
Promiseconstructor antipattern!您应该将调用getUserInfo的代码再次放入then回调中。
标签: javascript bluebird