草庐IT

javascript - Angular : can a controller watch server properties?

我有一个Controller来管理我的数据页面和一个服务,该服务每30秒发出一次HTTP请求以获取要在页面上显示的新数据。我正在尝试以可测试并正确利用服务的“Angular”方式编写它。我可以想到两种基本方法,我猜其中一种(或两种)是错误的:Controller将数据存储在$scope变量中,并执行setInterval或$timeout来调用服务的方法以获取新数据,然后更新变量。该服务将数据存储在它自己的变量/属性中,并定期调用它自己来获取新数据。并且Controller以某种方式监视/监听服务属性以了解何时更新View。为了这个问题的目的,考虑一个具体的例子可能会有所帮助。如果HT

javascript - AngularJS promise 在加载数据之前被解决

在我的应用程序中,我必须在加载页面之前获取一些JSON数据并将其分配给一个数组。这是我使用CardService服务获取JSON的代码:cards=[];varcs={...fetchCards:function(){vard=$q.defer();$http.get("data/cards.php").success(function(data){cards=data;d.resolve();}).error(function(data,status){d.reject(status);});returnd.promise;},getCards:function(){returnca

javascript - 为什么 Promise 构造函数需要一个执行器?

使用Promises时,为什么不能在代码库的其他地方定义resolve和reject的触发器?我不明白为什么resolve和reject逻辑应该在声明promise的地方进行本地化。这是一种疏忽,还是强制使用executor参数有好处?我认为executor函数应该是可选的,它的存在应该决定promise是否封装了resolution。如果没有这样的授权,promise将更具可扩展性,因为您不必立即启动异步。promise也应该是可重置的。这是一个单次切换,1或0,resolve()或reject()。可以附加大量并行和顺序结果:promise.then(parallel1)和prom

javascript - 异步/等待如何串行和并行工作?

我有两个async函数。他们都在等待两个3秒的函数调用。但是第二个比第一个快。我认为更快的一个是并行运行的,另一个是串行运行的。我的假设正确吗?如果是,为什么会发生这种情况,因为这两个函数在逻辑上看起来是一样的?functionsleep(){returnnewPromise(resolve=>{setTimeout(resolve,3000);});}asyncfunctionserial(){awaitsleep();awaitsleep();}asyncfunctionparallel(){vara=sleep();varb=sleep();awaita;awaitb;}seri

javascript - 为什么 Javascript 异步函数不立即返回?

我试图更好地掌握JS中的异步函数和promise。为此,我编写了一个示例程序,其目标是调用一个执行繁忙工作的函数(有意不使用asyncsetTimeout,因为我想模拟一个长时间运行的进程)但立即返回。但是,我似乎无法弄清楚为什么这不起作用。test();asyncfunctionintense(){varstart=newDate().getTime();for(vari=0;i2000){break;}}console.log("Donewithasyncwork");}asyncfunctiontest(){console.log("Print1");intense();//do

javascript - 从 fetch -> promise -> response 获取数据

我正在尝试向服务器发送一些数据,但我不知道如何取回响应数据。我有以下代码:fetch(url,{method:'POST',headers:{'Accept':'application/json','Content-Type':'application/json'},body:JSON.stringify({email:login,password:password,})}).then(function(a){console.log(a);})它打印一个Response它包含诸如body(ReadableByteStream)、bodyUsed(false)、ok(true)、stat

javascript - 如何在不在外部缓存的情况下将 'this' 传递给 Promise?

这个问题在这里已经有了答案:Howtoaccessthecorrect`this`insideacallback(13个答案)关闭3年前。我有一个名为LangDataService.isDataReady的变量,它是一个等待解决的Promise。解决后会发生一些逻辑。我怎样才能将它传递给那个Promise?LangDataService.isDataReady.then(function(){this.modalOn()});我知道我可以缓存varself_=this;但我对其他替代方案感到好奇?

javascript - 等待里面有一个 promise 的 forEach 完成

我在等待forEach循环完成时遇到问题,该循环内部有一个promise。我找不到任何真正的解决方案,可以让脚本等到最后,然后再继续执行。我无法使someFunction同步。makeTree:function(arr){arr.forEach(function(resource){someModule.someFunction(resource).then(function(){//aPromise//dosomethingwiththeresourcethathasbeenmodifiedwithsomeFunction});});//dosomethingaftertheloop

javascript - 返回 promise 的函数是什么?

返回promise的函数叫什么?这不是玩笑的开始 最佳答案 在javascript社区中,我看到一个函数返回一个名为“thenable”的promise,我在编码时认为“thenable”的次数足够多。这是一个thenable函数。我喜欢这个名字有很多原因:1)Thenable描述了功能行为。如果它返回一个promise,你可以在上面调用“then”。2)它是唯一的。Promise不完全是单子(monad)的,所以单子(monad)是不合适的。“Async”更像是一个父类(superclass)函数,无助于描述Promise的性质。

javascript - 如何在 JavaScript 中使用 `Array#map` 中的 `Promise.all`

我正在尝试创建一个包含项目数组的Promise.all。所以如果我这样创建它,它就可以正常工作Promise.all([Query.getStuff(items[0]),Query.getStuff(items[1])]).then(result=>console.log(result))如果我尝试像这样创建Promise.all,它不起作用Promise.all([items.map(item=>Query.getStuff(item))]).then(result=>console.log(result))thenblock在Query.getStuff(item)之前运行。我错过