码:const request = require('request'); const jimp = require('jimp');function createShop() {Promise.all([request({uri:"https://fnbr.co/api/shop",headers: {"x-api-key":"api-key"}}),jimp.read("./Images/shopBack.jpg"),jimp.read("./Images/Rarities/uncommon.png"),jimp.read("./Images/Rarities/rare.png"),jimp.read("./Images/Rarities/epic.png"),jimp.read("./Images/Rarities/legendary.png"),jimp.read("./Ima...
var fs = require('fs') var p1 = new Promise((resolve, reject) => {fs.readFile('./data/a.txt', 'utf8', function(err, data){if(err){reject(err)} else {resolve(data)}}) })var p2 = new Promise((resolve, reject) => {fs.readFile('./data/b.txt', 'utf8', function(err, data){if(err){reject(err)} else {resolve(data)}}) })var p3 = new Promise((resolve, reject) => {fs.readFile('./data/c.txt', 'utf8', function...
在我的角度应用程序中,我有一个带有名称的$scope变量用户. 如果我在点击时将此变量设置为“test”: < a href =“#”ng-click =“setUser()”>设置用户< / a> 与功能$scope.user = {name: 'blank' }$scope.setUser = function(name) {$scope.user.name = name }这很好用.但是,如果我在promise.then()*中设置它,它似乎正确设置变量,但Angular不会在视图中更新它,直到我在$scope.user上执行了另一个操作. < a href =“#”ng-click =“...
我正在制作一系列http请求,我需要在返回时将结果存档到列表对象中.我正在使用有角度的承诺. 因为promise只在for循环结束后解析,所以它们都被归入列表的最后一个索引.for (var i = 0;i < list.length; i+=1) {Promise.do(action).then(function(result) {list[i] //i is always at last index because the for loop has already completed} }解决方法:我会尝试使用$q.all:var promises = [];for (var i = 0; i < list.length; i +=...
我想让对象请求JavaScript承诺,但我不希望它们创建单独的promise.我想要实现的逻辑如下 – 检查一个承诺是否未决,只有不承诺,创建一个新的承诺.这可能吗?根据文档,我无法检查承诺的状态,我只能在它满满后处理它但我不想为每个承诺请求调用处理程序,如果一个Promise的回调可以,我不想运行多个Promises回应所有过去的请求…… 我试图以这种方式解决的问题是从外部服务器获取数据并在接收后通过事件将其广播到多个对象.解决方法:当然...
我目前正在尝试在Visual Studio 2015中开发一个node.js应用程序,它一直在告诉我TS2304 Cannot find the name ‘Promise’在项目设置中,我将ECMAScript 6配置为构建系统,将ES 2015配置为模块系统. 我已经试过了 > how to use es6-promises with typescript?> How to use Typescript with native ES6 Promises 没有成功,但在第二个链接中,他们说它应该与ECMAScript版本设置为6,但它对我没有任何改变. 编辑:我现在做了一些更多的诊断...
我试图将getstream API包装在角度服务(工厂)中 这是我的代码:.factory('FeedStream', function($http, $q) {var client = stream.connect('xxxxxxxxxxx');return {feed : function() {$http.get('/api/feed/auth/').success(function(auth) {var user_feed = client.feed('user', auth.user, auth.token);console.log(user_feed.get());user_feed.get().then(function(data) { console.log(data);return data;})})},}首先,我使用端...
function getMentionedUsers(str, next){var array = getUsernamesFromString(str); //['john','alex','jess'];if(array.length > 0){var users = [];var pending = array.length;array.forEach(function(username){getUserByUsername(username).then(function(model){users.push(model.key);--pending || next(users); //this is a callback model}); });} };function getUserByUsername(username){return admin.database().ref('...
最后的控制台返回空数组.控制台在ids.map函数完成之前运行var ids = []; var allLync = [] var user = await User.findOne(args.user) ids.push(user._id) user.following.map(x => {ids.push(x) }) ids.map(async x => {var lync = await Lync.find({ "author": x })lync.map(u => {allLync.push[u]}) })console.log(allLync)我究竟做错了什么?解决方法:不等待.map代码,因此console.log在映射发生之前发生. 如果你想等待地图 – ...
请阅读this very short article以了解我想要做的事情. 重点在于,正如作者所说,我“需要向用户询问几个问题,……验证输入数据并在输入错误时重新提问.”此外,我可能需要做更复杂的事情来验证输入,除了检查正则表达式.例如,请检查以确保用户未在先前的提示下输入当前输入. 我有兴趣重构本文中的主要代码片段,以便它是基于承诺的.我想要这样做的显而易见的原因是,如果我需要提示用户超过两三次,请避免回调地狱.你对如何重构这个有什么...
我觉得我有很好的机会找到我从木偶运算符那里获得的那些罕见的超时,但是有些人如何暂时没有抓住这个超时 – 我的问题是为什么? 这是代码:var readHtml = (url) => {return new Promise( async (resolve,reject)=> {var browser = await puppeteer.launch()var page = await browser.newPage()await page.waitForSelector('.allDataLoaded').then(() => {console.log ("Finished reading: " + url)return resolve("COOL");}).c...
我正在尝试使用promise而是出现类型错误:Promise不是构造函数. 这是承诺:var Promise = new Promise(function (resolve,error) {for (var key in excludeValues) {/* some ifs */minVal = someValue ................}resolve(errors)});Promise.then(function(data){if (minVal > maxVal){errors.minMax.push('minMax')}if (gapVal > minVal * -1){errors.minMax.push('gapVal')}return (errors.minMax.length == 0 && errors.z...
我正在编写一个返回“返回一个promise的函数”的函数,我正在努力命名和记录我的函数. 是否有“返回Promise的函数”的名称? 注意:“否”是可接受的答案.解决方法:基本上没有.返回Promise的函数没有规范名称.只要Promise捕获一些异步功能的想法是真的,你可以随意调用它.例如,“异步函数”. 但是,我建议只使用“返回Promise的函数”.当你认为函数本身的返回值没有任何不同时,这是最准确的(正如@DaveNewton所说,它返回Promise的事实是...
背景 我正在努力学习承诺,我有一个我希望改进的承诺链. 问题 在学习如何链接承诺时,我不明白为什么有人宁愿回复承诺而不是回报它的价值. 以下示例使用promise链接:let myObj = new MyClass();myObj.getInfo().then(result => writeOutput(FILE_NAME, result)).then(console.log(FILE_NAME + " complete")).catch(error => console.error(error));class MyClass{getInfo() {return new Promise(function(fulfil, reject) {fulfill(...
我写了下面的代码然后意识到它是早期解决(在所有承诺解决之前记录):readDirPromise .then(categoriseFiles) .then(({movies, series}) => ({movies: Promise.all(movies.map(movieTasks)),series: Promise.all(series.map(seriesTasks)) })) .then((res) => {console.log(' (adsbygoogle = window.adsbygoogle || []).push({});标签:javascript,es6-promise 来源: https://codeday.me/bug/20190823/1700820.html(adsbygoogle =...