所以我看到Promise.defer现在已经弃用了,现在我们应该使用它new Promise.但是对于这个例子,我不知道如何做到这一点?
var Promise = require('bluebird');
var interval;
var rollDice = function (resolver) {
console.log("rolling");
if (Math.floor(Math.random() * 10) == 7) {
clearInterval(interval);
resolver.resolve();
}
}
var rollTill7 = function (ms) {
var resolver = Promise.defer();
interval = setInterval(function(){rollDice(resolver);},ms);
return resolver.promise;
}
rollTill7(100).then(function(){
console.log("rolled a 7");
});
Run Code Online (Sandbox Code Playgroud) 情况1:
我加载了一个非常大的HTML页面,其中包含许多复杂的布局和字体.该页面将需要一些未知的时间来渲染.
案例2:
我使用jquery .html()函数对我的DOM进行重大更改.修改后的DOM将需要一些未知的时间来渲染.
在这两种情况下,我希望能够使用微调器覆盖整个屏幕,直到页面完全渲染完毕.
在寻找这个问题的答案时,我发现了类似的问题,但答案并不相关.要明确:
我不想知道DOM什么时候准备好了.
我不想知道何时获取HTTP数据.
我想知道DOM中的所有内容何时完全被绘制到屏幕上.
设置一些最坏情况的超时是不可接受的解决方案.
我需要一个基于WebKit的浏览器的解决方案.
我正在尝试编写一个具有返回promises和promise链的方法的类.此尝试从do_that()返回错误
我理解使用'this'的问题,这就是为什么我使用self = this kludge,但我仍然会收到错误.
TypeError:无法读取未定义的属性"name".
除了这个问题,我该如何解决这个问题,还有更简洁的方法吗?
var Promise = require('bluebird');
class myClass {
constructor(name, pipeline) {
this.name = name;
}
do_this() {
var self = this; // <-- yuck. Do I need this?
return new Promise(function(resolve, reject) {
setTimeout(function () { console.log("did this " + self.name); resolve(self); }, 1000);
})
}
do_that() {
var self = this; // <-- yuck
return new Promise(function(resolve, reject) {
setTimeout(function () { console.log("did that " + self.name); resolve(self); }, 1000);
})
}
do_both() …Run Code Online (Sandbox Code Playgroud) 我正在训练分类器以识别图像中的某些对象.我正在使用Watson Visual Recognition API,但我认为同样的问题也适用于其他识别API.
我收集了400张照片 - 比如狗.
在我训练沃森之前,我可以删除可能会丢掉东西的图片.我应该删除以下图片:
此外,白色背景上的狗会更好地训练样本吗?
沃森也是负面的例子.猫和其他小动物会成为好的反面例子吗?还有什么?
promise ×2
bluebird ×1
ecmascript-6 ×1
html ×1
javascript ×1
jquery-ui ×1
node.js ×1
tensorflow ×1
watson ×1
webkit ×1