the*_*cat 5 javascript node.js promise
我正在尝试将我的一些代码转换为Promise,但是我不知道如何在Promise中链接一个新的Promise。
我的promise函数应该每隔一秒左右检查一次数组的内容,并且其中是否应该解析任何项目。否则,应等待1秒钟,然后再次检查,依此类推。
function get(){
return new Promise((resolve) => {
if(c.length > 0){
resolve(c.shift());
}else{
setTimeout(get.bind(this), 1000);
}
});
}
let c = [];
setTimeout(function(){
c.push('test');
}, 2000);
Run Code Online (Sandbox Code Playgroud)
这就是我期望我的get()承诺函数正常工作的方式,它应该在最多2或3秒后打印“ test”:
get().then((value) => {
console.log(value);
});
Run Code Online (Sandbox Code Playgroud)
显然它不起作用,什么也没印刷
Abh*_*ain -1
用于setInterval每秒检查一次。运行这个脚本就可以理解了。
let c = [];
function get(){
return new Promise((resolve) => {
var i = setInterval(function(){
if(c.length > 0){
resolve(c.shift());
clearInterval(i);
}
}, 1000);
});
}
setTimeout(function(){
c.push('test');
}, 2000);
get().then((value) => {
console.log(value);
});Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4400 次 |
| 最近记录: |