JSFiddle - React, Tailwind, and code Playground
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>
<pre id="output"></pre>
JavaScript
(function() {
var datain = ['val1', 'val2', 'val3'];
var output = document.getElementById("output");
var outputText = document.createTextNode("");
output.appendChild(outputText);
function printOutput(line) {
outputText.data += line + "\n";
}
function concatenateUsers() {
var dataout = [];
var deferred = $.Deferred();
var i = 0;
var l = datain.length;
if (i <= l) {
ko.utils.arrayForEach(datain, function(values) {
printOutput("inner: " + values);
dataout.push("inner: " + values);
})
}
// You can also `.reject()` to trigger the error in your handler below
return deferred.resolve(dataout)
}
function waitForConcatenation() {
var promise = concatenateUsers();
console.log(promise);
promise.fail(function(error) {
console.log("fail");
printOutput(error);
});
promise.done(function(result) {
console.log("done");
printOutput(result);
});
}
waitForConcatenation();
})();