Tag: async await

如何asynchronous/等待在我的代码不起作用?

这个asynchronous/等待如何不起作用? 我已经花了整整一天尝试不同的组合,看video和阅读asynchronous/等待,find为什么这不起作用,然后张贴在这里。 我试图做第二个nodejs应用程序将运行在不同的端口,我的主应用程序将调用这个,所以它废弃一些数据,并将其保存到数据库caching。 它应该做什么:取一个关键字并将其发送给一个叫做scrapSearch的方法,这个方法创build一个完整的URI链接,并将其发送给实际获取该网页的方法,并将其返回给第一个调用者。 发生了什么:在返回结果之前触发初始调用下方的console.log。 控制台输出 Requesting : https://www.google.ca/?q=mykeyword TypeError: Cannot read property 'substr' of undefined at /DarkHawk/srv/NodesProjects/_scraper/node_scrapper.js:34:18 at <anonymous> app.js : 'use strict'; var koa = require('koa'); var fs = require('fs'); var app = new koa(); var Router = require('koa-router'); var router = new Router(); app .use(router.routes()) .use(router.allowedMethods()); app.listen(3002, 'localhost'); router.get('/scraptest', async function(ctx, next) […]

打字稿asynchronous/等待与Observable或承诺

我可以像这样使用async吗? 我async/await这里杀了async/await ? 下面的代码是没有错误的工作,我知道async/await只适用于Promise<T> 。 我的getItem是一个Observable 。 谢谢。 roleService.getItem({ page: p.pageIndex + 1, pageSize: p.pageSize }) .takeUntil(this.unsubscribe$) .map((res: ResponseDto) => <DtoModel>res.contentBody) .do(async (dto: DtoModel) => await this.subject.next(dto.content)) // working wihtout error .subscribe(async (dto: DtoModel) => await (this.pager = dto.pager), //working without error (error: any) => Observable.throw(error));

在Node.js中使用TypeScriptasynchronous等待

我发现不可能完成接下来的四件事情: 在Node.js中编写 在TypeScript中编写 使用async await debugging容易 说明: 我有一个在TypeScript中编写的Node.js项目,我正在使用async await 。 现在的问题是,如果我transpile到ES6,导入关键字会产生“意外的令牌导入”错误在这里讨论: ES6导入和导出不支持在Node.js ,而如果我transpile到ES5, async await变成不可读码: 这个: ///<reference path="../typings/modules/bluebird/index.d.ts" /> ///<reference path="../typings/modules/mongodb/index.d.ts" /> import * as Promise from 'bluebird'; import { MongoClient, Db } from 'mongodb'; import {Campaign} from "../classes/Campaign"; export async function getCampaigns(): Campaign[] { try{ var db = await connect(); var campaigns: Campaign[] = […]

asynchronous/等待请求内部护照策略

我到处寻找解决这个问题的答案,并尝试了不同的build议,但我仍然无法弄清楚。 我在护照中使用Steam API策略,在创build新的SteamStrategy后,我有一个callback函数来处理我的MongoDB集合。 我基本上只是检查当前login的用户是否在数据库中,如果没有,然后创build一个新的用户和.save()它到mongoDB。 这一切都工作正常,直到我决定我想要一个请求()蒸汽API一些额外的用户信息,我可以存储到新的用户。 但是,当我尝试将request()保存到variables和console.log()variables时,它总是表示为空。 我知道这是因为它是asynchronous运行的,但这就是为什么我等待,但没有成功。 我也尝试过实现一个callback – 地狱types的解决scheme,但遇到了一些严重的范围问题,我最后的陈述“return done(null,user)”; 无论如何。 如果有人能解释我的问题并提供解决scheme,那就太好了,谢谢! passport.use( new SteamStrategy( { returnURL: keys.returnURL, realm: keys.realm, apiKey: keys.steamAPI, proxy: true }, async function(identifier, profile, done) { const existingUser = await User.findOne({ steamInfo: { id: profile._json.steamid } }); if (existingUser) { middleware.updateMongo(existingUser); return done(null, existingUser); } ////////////////////////THE PROBLEM STARTS HERE///////////////////// const […]

asynchronous/等待Chrome远程界面的问题

我想testing这段代码,并等待直到它完成断言的结果。 不知道问题出在哪里,它应该在最后返回Promise.resolve(),但是在代码执行之前日志会end 。 Page.loadEventFired是否应该先await ? const CDP = require('chrome-remote-interface') async function x () { const protocol = await CDP() const timeout = ms => new Promise(resolve => setTimeout(resolve, ms)) // See API docs: https://chromedevtools.github.io/devtools-protocol/ const { Page, Runtime, DOM } = protocol await Promise.all([Page.enable(), Runtime.enable(), DOM.enable()]) Page.navigate({ url: 'http://example.com' }) // wait until the page […]

在asynchronous循环之后写入控制台

我试图做asynchronous循环,我做了一些事情,并在结束后,我写入控制台。 这是这样的: const http = require('http'); async function load(link) { try{ http.get(link, response => console.log(`File: ${link}`)); }catch(e){ console.log('error'); } } async function loop(arrayOfLinks) { for(let link of arrayOfLinks) load(link); } module.exports = (arrayOfLinks) => { (async () => { await loop(arrayOfLinks); console.log('Files: '+arrayOfLinks.length); })(); } 但是,我有: 文件:3 文件: http:// localhost:8000 / 1.jpg 文件: http:// localhost:8000 […]

asynchronous并等待一些IDE的错误

我试图使用aysnc并在我的项目中await ,我第一次尝试在FiddleJS这些,它工作正常,但是当我试图在我的IDE(PHPSTORM 2017)做到这一点我得到一个错误: async function test(url){ ^^^^^^^^ SyntaxError: Unexpected token function at createScript (vm.js:56:10) at Object.runInThisContext (vm.js:97:10) at Module._compile (module.js:542:28) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604:10) at run (bootstrap_node.js:389:7) at startup (bootstrap_node.js:149:9) 我也在vscode上试过,得到了同样的错误。 这是我试图做的: async function test(url){ console.log(await check(url) ); } app.get('/test', (req, res) => { […]

Mongooseasynchronous/等待与Koa卡住await Model.findOne()。exec()

我有一个Koa 2应用程序,并通过这个函数来处理/注册: import User from 'models/user'; export const signup = async (ctx, next) => { const { email, password } = ctx.request.body; try { const existingUser = await User.findOne({ email }); if (existingUser) { ctx.body = { error: 'Email is in use' }; return next(); } const user = new User({ email, password, }); await […]

validation使用Mocha / Chai和asynchronous/等待引发exception

我努力想出一个最好的方法来validation在使用asynchronous/等待的同时在摩卡testing中拒绝承诺。 这是一个should.be.rejectedWith的例子,但我不喜欢should.be.rejectedWith返回一个承诺,需要从testing函数返回,以正确评估。 使用async / await可以删除testing值的这个要求(正如我对下面wins()的结果所做的那样),我觉得在某些时候我很可能会忘记return语句,在这种情况下,testing总是会通过。 // Always succeeds function wins() { return new Promise(function(resolve, reject) { resolve('Winner'); }); } // Always fails with an error function fails() { return new Promise(function(resolve, reject) { reject('Contrived Error'); }); } it('throws an error', async () => { let r = await wins(); r.should.equal('Winner'); return fails().should.be.rejectedWith('Contrived Error'); }); 感觉应该有可能使用async […]

如何find在Node + Typescript + VSCodeasynchronous函数调用缺less的等待?

我们在节点应用程序b / c中部署了错误,我们忘记用“await”作为前缀asynchronous函数调用。 例: const getUsers = async () => db.query('SELECT * from Users'); const testMissingAwait = async () => { const users = getUsers(); // <<< missing await console.log(users.length); }; testMissingAwait(); 有没有一种简单的方法来find缺lessawait关键字的asynchronous函数调用? 否则,编写一个Visual Studio代码扩展会自动标记这些扩展会花多less功夫? (如果有人能指出我的方向,我可以解决问题)。