タグ付けされた質問 「promise」

Promiseは、ローカルコンピューティングのスレッドとイベントループの同時実行、および同期と非同期の両方のリモートメッセージングなど、いくつかの同時実行スタイルに適した遅延コンピューティングの戦術です。promiseは、非同期操作の最終的な結果を表します。プロミスを処理する主な方法は、プロミスの最終的な価値または失敗の理由から新しいプロミスへの変換を登録する方法です。

4
関数の変数を返す前に、プロミスが完了するのをどのように待つのですか?
私はまだ約束に苦労していますが、ここのコミュニティのおかげである程度進歩しています。 Parseデータベースにクエリを実行する単純なJS関数があります。結果の配列を返すことになっていますが、クエリの非同期の性質(したがって、promise)のため、関数は結果の前に戻り、未定義の配列が残ります。 この関数にプロミスの結果を待機させるには、何をする必要がありますか? これが私のコードです: function resultsByName(name) { var Card = Parse.Object.extend("Card"); var query = new Parse.Query(Card); query.equalTo("name", name.toString()); var resultsArray = []; var promise = query.find({ success: function(results) { // results is an array of Parse.Object. console.log(results); //resultsArray = results; return results; }, error: function(error) { // error is an …

9
Node.jsのpromiseを理解する
私が理解したことから、非同期コードを呼び出す方法は3つあります。 イベント、例えば request.on("event", callback); コールバック、例えば fs.open(path, flags, mode, callback); 約束 node-promiseライブラリを見つけましたが、取得できません。 誰かがすべての約束について、そしてなぜ私がそれを使うべきなのかを説明できますか? また、Node.jsから削除されたのはなぜですか?

12
約束の価値にアクセスするには?
私はAngularのドキュメントからこの例を見てい$qますが、これはおそらく一般的な約束に当てはまると思います。以下の例は、コメントが含まれたドキュメントからそのままコピーされています。 promiseB = promiseA.then(function(result) { return result + 1; }); // promiseB will be resolved immediately after promiseA is resolved and its value // will be the result of promiseA incremented by 1 これがどのように機能するのか私にはわかりません。.then()最初のの結果を呼び出すことができる場合は、.then()それらを連鎖させることができます。これpromiseBは、私ができることがわかっているため、型のpromiseオブジェクトObjectです。それはではありませんNumber。では、「その値は、promiseAが1ずつ増加した結果になる」とはどういう意味ですか 私はそれにアクセスするpromiseB.valueべきですか、それともそのようなものですか?成功のコールバックはどのようにプロミスを返し、「結果+ 1」を返すことができますか?何か不足しています。

22
typescript:エラーTS2693: 'Promise'はタイプのみを参照していますが、ここでは値として使用されています
AWS LambdaにTypescriptを使用しようとしていますが、promiseを使用している場合は常に次のエラーが発生します。 エラーTS2693: 'Promise'はタイプのみを参照していますが、ここでは値として使用されています。 コードで次のバリエーションを使用してみました Promiseコンストラクターの使用 responsePromise = new Promise((resolve, reject) => { return reject(new Error(`missing is needed data`)) }) Promise.rejectの使用 responsePromise = Promise.reject(new Error(`Unsupported method "${request.httpMethod}"`)); バージョン 以下は私の開発依存関係のバージョンです: "typescript": "^2.2.2" "@types/aws-lambda": "0.0.9", "@types/core-js": "^0.9.40", "@types/node": "^7.0.12", tsconfig.jsonの内容 { "compileOnSave": true, "compilerOptions": { "module": "commonjs", // "typeRoots" : ["./typings", "./node_modules/@types"], …

4
AngularJS:promiseはどこで使用しますか?
Promiseを使用してFB Graph APIにアクセスするFacebookログインサービスの例をいくつか見ました。 例#1: this.api = function(item) { var deferred = $q.defer(); if (item) { facebook.FB.api('/' + item, function (result) { $rootScope.$apply(function () { if (angular.isUndefined(result.error)) { deferred.resolve(result); } else { deferred.reject(result.error); } }); }); } return deferred.promise; } そして"$scope.$digest() // Manual scope evaluation"、応答を得たときに使用したサービス 例2: angular.module('HomePageModule', []).factory('facebookConnect', function() { return …

3
イベントループコンテキスト内のマイクロタスクとマクロタスクの違い
Promises / A +仕様を読み終えたところで、microtaskとmacrotaskという用語に出会いました。http://promisesaplus.com/#notesを参照してください。 私はこれまでこれらの用語を聞いたことがありませんでした、そして今、私はその違いが何であるかについて知りたいですか? 私はすでにウェブ上でいくつかの情報を見つけようとしましたが、私が見つけたすべてはw3.org Archivesからのこの投稿です(これは私には違いを説明していません):http : //lists.w3.org/Archives /Public/public-nextweb/2013Jul/0018.html さらに、「macrotask」と呼ばれるnpmモジュールを見つけました。https://www.npmjs.org/package/macrotask 繰り返しますが、正確な違いは明確ではありません。 で説明したように、すべてのI knowが、それはイベントループとは何かを持っていること、であるhttps://html.spec.whatwg.org/multipage/webappapis.html#task-queue と//html.spec.whatwg:HTTPS .org / multipage / webappapis.html#perform-a-microtask-checkpoint このWHATWG仕様を考えると、理論的には自分で違いを抽出できるはずです。しかし、専門家による短い説明から他の人も同様に恩恵を受けることができると私は確信しています。

13
promiseチェーンを解除し、それが解除されたチェーン内のステップに基づいて関数を呼び出します(拒否)
更新: この投稿の将来の視聴者を支援するために、私はこのplumaの回答のデモを作成しました。 質問: 私の目標はかなり簡単なようです。 step(1) .then(function() { return step(2); }, function() { stepError(1); return $q.reject(); }) .then(function() { }, function() { stepError(2); }); function step(n) { var deferred = $q.defer(); //fail on step 1 (n === 1) ? deferred.reject() : deferred.resolve(); return deferred.promise; } function stepError(n) { console.log(n); } ここでの問題は、ステップ1で失敗すると、stepError(1)ANDとANDの両方stepError(2)が実行されることです。私はしていない場合はreturn …

1
先物対約束
私は自分を未来と約束の違いと混同しています。 明らかに、それらは異なる方法やものを持っていますが、実際のユースケースは何ですか? それは...ですか?: 非同期タスクを管理しているときは、futureを使用して「in future」の値を取得します 私が非同期タスクの場合、戻り値の型としてpromiseを使用して、ユーザーが私のpromiseから未来を取得できるようにします
135 c++  c++11  promise  future 

8
NodeJS UnhandledPromiseRejectionWarning
そこで、イベントエミッターに依存するコンポーネントをテストしています。そうするために、私はMocha + ChaiでPromisesを使用するソリューションを思いつきました。 it('should transition with the correct event', (done) => { const cFSM = new CharacterFSM({}, emitter, transitions); let timeout = null; let resolved = false; new Promise((resolve, reject) => { emitter.once('action', resolve); emitter.emit('done', {}); timeout = setTimeout(() => { if (!resolved) { reject('Timedout!'); } clearTimeout(timeout); }, 100); }).then((state) …

5
Vuexアクションからの約束の回復
私は最近、jQからより構造化されたフレームワークであるVueJSへの移行を開始しました。 概念的には、Vuexは私にとって少しパラダイムシフトでしたが、私は今、そのすべてが何であるかを知っており、それを完全に理解していると確信しています!しかし、ほとんどが実装の観点から、いくつかの小さな灰色の領域が存在します。 これは設計上は良いと感じますが、単方向データフローのVuex サイクルと矛盾するかどうかはわかりません。 基本的に、アクションからpromise(like)オブジェクトを返すことは良い習慣と考えられていますか?私はこれらを非同期状態のラッパーとして扱い、障害などの状態があるので、promiseを返すのに適しているようです。逆にミューテーターは物事を変えるだけで、ストア/モジュール内の純粋な構造です。

6
なぜPromise.catchハンドラー内にスローできないのですか?
なぜErrorcatchコールバックの内部をスローして、他のスコープにあるかのようにプロセスにエラーを処理させないのはなぜですか? console.log(err)何もしなければ、何も出力されず、何が起こったのかわかりません。プロセスは終了しました... 例: function do1() { return new Promise(function(resolve, reject) { throw new Error('do1'); setTimeout(resolve, 1000) }); } function do2() { return new Promise(function(resolve, reject) { setTimeout(function() { reject(new Error('do2')); }, 1000) }); } do1().then(do2).catch(function(err) { //console.log(err.stack); // This is the only way to see the stack throw err; // …

9
promiseはonFulfilledに複数の引数を持つことができますか?
ここでは仕様に従っていますが、複数の引数を指定してonFulfilledを呼び出すことができるかどうかはわかりません。例えば: promise = new Promise(function(onFulfilled, onRejected){ onFulfilled('arg1', 'arg2'); }) そのような私のコード: promise.then(function(arg1, arg2){ // .... }); 両方arg1を受け取りarg2ますか? 特定のpromise実装がそれをどのように実行するかは気にしません。promiseのw3c仕様に厳密に従っていきたいと思います。

18
jQuery $ .getScript()メソッドを使用して複数のjsファイルを含める方法
JavaScriptファイルをjsファイルに動的に含めようとしています。私はそれについていくつかの調査を行い、jQuery $ .getScript()メソッドが望ましい方法であることを発見しました。 // jQuery $.getScript('/path/to/imported/script.js', function() { // script is now loaded and executed. // put your dependent JS here. // what if the JS code is dependent on multiple JS files? }); しかし、この方法で一度に複数のスクリプトをロードできるかどうか疑問に思っていますか?私がこれを尋ねているのは、私のJavaScriptファイルが複数のjsファイルに依存している場合があるためです。 前もって感謝します。

5
非同期関数が値ではなくPromise {<pending>}を返すのはなぜですか?
私のコード: let AuthUser = data =&gt; { return google.login(data.username, data.password).then(token =&gt; { return token } ) } そして、私がこのようなものを実行しようとすると: let userToken = AuthUser(data) console.log(userToken) 私は得ています: Promise { &lt;pending&gt; } しかし、なぜ? 私の主な目標はgoogle.login(data.username, data.password)、promiseを返すトークンを変数に取得することです。その後、いくつかのアクションを実行します。

5
返す前にangularjsの約束を解決できますか?
プロミスを返す関数を書こうとしています。ただし、要求された情報がすぐに利用できる場合があります。私はそれを約束に包んで、消費者が決定をする必要がないようにしたいと思います。 function getSomething(id) { if (Cache[id]) { var deferred = $q.defer(); deferred.resolve(Cache[id]); // &lt;-- Can I do this? return deferred.promise; } else { return $http.get('/someUrl', {id:id}); } } 次のように使用します。 somethingService.getSomething(5).then(function(thing) { alert(thing); }); 問題は、コールバックが事前に解決されたpromiseに対して実行されないことです。これは正当なことですか?この状況を処理するより良い方法はありますか?
125 angularjs  promise 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.