私は$ qと約束が同期プログラミングには良いと聞いています。私の約束が機能していないのはなぜですか
タイムアウトのある最初の関数の後に2番目の関数を実行したい。だから、基本的に私は私のsecondfunctionが
私のコードを動作させる前に、最初の実行を終了するために、MT最初の関数をしたいです:
<head>
<link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
</head>
<body ng-app="myApp">
<div ng-controller="myCtrl">
<button ng-click="myClick()">Click Me!</button>
</div>
<script type="text/javascript">
angular.module('myApp', [])
.controller('myCtrl',['$scope', '$timeout', '$q', function($scope, $timeout, $q){
$scope.functionOne = function(){
return $q(function(resolve, reject){
$timeout(function(){
alert("dean");
}, 3000);
})
};
$scope.functionTwo = function(){
alert("armada");
}
$scope.myClick = function(){
var promise = $scope.functionOne();
promise.then(function(){
$scope.functionTwo();
}, function(){
alert("fail");
})
};
}]);
</script>
</body>
Plunker:https://plnkr.co/edit/6hJF4mxrCQ17XXA43eUl?p=preview
は 'resolve'または' reject'を呼び出すことはありません
$timeout
はすでに約束を返しますか? – Icepickleはい、正解が与えられました –