草庐IT

request-promise

全部标签

javascript - 如何使用 async/await 将此回调转换为 promise?

以下函数从url获取图像,加载它,并返回它的宽度和高度:functiongetImageData(url){constimg=newImage()img.addEventListener('load',function(){return{width:this.naturalWidth,height:this.naturalHeight}})img.src=url}问题是,如果我这样做:ready(){console.log(getImageData(this.url))}我得到undefined因为函数运行但图像尚未加载。如何使用await/async只在图片加载完成且宽高已经可用时才

javascript - Promise.resolve 是异步函数吗?

当我有以下代码时:varpromise1=Promise.resolve([1,2,3]);promise1.then((value)=>{console.log(value);//expectedoutput:Array[1,2,3]});console.log('endofscript');我知道脚本结尾会提前返回,因为promise是异步的。但是它在什么时候变成异步的呢?Promise.resolve()是异步的吗?或者.then是异步的还是两者兼而有之?幕后是否还有其他机制在起作用?(对谷歌来说简直是hell,因为我只能得到新的asyncawait功能的结果)

javascript - 如何使用 Bluebird promise NodeJS Express

我将NodeJS与Express结合使用,并将Bluebird用于promises。我正在尝试如下所示promise应用程序对象,但一旦promise函数总是会抛出错误。部分代码如下:varexpress=require('express'),app=express(),bodyParser=require('body-parser'),Promise=require("bluebird");app.postAsync=Promise.promisify(app.post);app.postAsync('/api/v1/users/update').then(function(req,

javascript - 如何使用 pg-promise 一次从多个查询中获取结果?

目前我有如下代码获取两次查询的结果dbro.many("SELECTgeoname_id,country_nameFROMpaisesWHERElocale_code=$1LIMIT10",data.lang).then(function(countriesData){data.countries=countriesData;dbro.many("SELECT*FROMcategorias").then(function(categoriesData){data.categories=(categoriesData)console.log(data);res.render('layou

javascript - 清洁代码 : try/catch in Promise

我正在研究redux-formatm并找到了这段代码。它对我有用,但有没有更简洁的方法来用ES6风格编写它?constasyncValidate=(values/*,dispatch*/)=>{returnnewPromise((resolve,reject)=>{try{if(['john','paul','george','ringo'].includes(values.name)){consterror={name:'Thatusernameistaken'};throwerror;}resolve();}catch(e){reject(e);}});};非常感谢你的帮助解决方案

javascript - Bluebird promises - 如何分解一个数组,然后映射它?

如果我有一个数组:['one.html','two.html','three.html']我如何分解该数组,对其应用一连串的promise,然后将其重新组合在一起?目前我的代码是这样的:Promise.map(['one','two','three'],function(i){dbQuery('SELECT'+i);}).then(function(results){//ThishasanarrayofDBqueryresults});我在想像这样的事情:Promise.map(['one','two','three'],function(i){dbQuery('SELECT'+i);

javascript - JavaScript : How to get resolve value for all promises? 中的 Promise.all

我编写了以下node.js文件:varcsv=require('csv-parser');varfs=require('fs')varPromise=require('bluebird');varfilename="devices.csv";vardevices;Promise.all(read_csv_file("devices.csv"),read_csv_file("bugs.csv")).then(function(result){console.log(result);});functionread_csv_file(filename){returnnewPromise(fu

javascript - 等待所有不同的 promise 完成 nodejs(异步等待)

我目前正在等待所有promise像这样按顺序完成:(async()=>{letprofile=awaitprofileHelper.getUserData(username);lettoken=awaittokenHelper.getUserToken(username);console.log(profile);console.log(token);return{profile:profile,token:token};})();但是这样,profile和token是顺序执行的。由于两者是相互独立的,所以我希望它们都一起独立执行。我认为这可以使用Promise.all来完成,但我不确

javascript - 在没有 I/O 的情况下,javascript(在浏览器中)的异步/ promise 是否有益?

我正在尝试为json-api找到一个好的反序列化器/反规范化器(事实证明这非常困难)。我遇到过几个示例,其中反序列化过程(基本上只是对关系进行反规范化和扁平化属性)被定义为异步函数。Here'sonesuchexample,但我发现了很多。现在,我对node/javascript的理解是它基于受I/O限制的系统,因此它的设计是操作应该是非阻塞的,以便其他操作可以在I/O期间进行调度,因此我们获取并发操作。然而,我不明白的是像这样的反序列化器中的用法。我们在反序列化时拥有完整的有效负载,没有任何I/O发生。我只能猜测作者假设关系查找可以同时发生,但是,由于javascript仍然是单线程

javascript - 带有 Mailgun 的 AJAX 函数,获取 "ERROR Request header field Authorization is not allowed by Access-Control-Allow-Headers"

我正在努力进行AJAX调用,该调用会命中MailgunAPI以发送电子邮件。Mailgun上的文档说发布请求应该发送到“https://api.mailgun.net/v3/domain.com/messages”。我已经包含了mailgun指定的apikey(他们指示使用用户名“api”)。由于这涉及CORS,我无法克服错误:Access-Control-Allow-Headers不允许请求header字段授权。但是,我检查了“网络”选项卡中的请求/响应,并且Mailgun响应中的“Access-Control-Allow-Origin”设置为“*”...这应该表明它应该允许它?(请